package com.gable.exhibition.service;

import com.gable.common.util.ReturnResultUtil;
import com.gable.exhibition.model.Appoint;
import com.gable.exhibition.model.User;
import com.gable.exhibition.view.ParameterView;
import com.gable.exhibition.view.RepairView;
import com.gable.exhibition.view.UserView;

import java.util.Map;

/**
 * Created by Lesson on 2017/12/28.
 */
public interface RepairService {

    /**
     *
     * @param repair
     * @return
     */
    ReturnResultUtil add(RepairView repair);

    /**
     * 获取维修列表
     * @param repairView
     * @Create user jacky
     * @Create date 2018/2/25
     * @return
     */
    ReturnResultUtil list(RepairView repairView);

    /**
     * 平台分配
     * @param repairView
     * @param sessionUser
     * @return
     */
    ReturnResultUtil distribution(RepairView repairView,UserView sessionUser);

    /**
     * 指派工程师
     * @param repairView
     * @return
     */
//    ReturnResultUtil assignEngineer(RepairView repairView);

    /**
     * 工程师响应操作
     * @param repairView
     * @return
     */
    ReturnResultUtil engineerResponse(RepairView repairView);

    /**
     * 工程师开始维修
     * @param repair
     * @return
     */
    ReturnResultUtil startRepair(RepairView repair);

    /**
     * 维修确认
     * @param repair
     * @return
     */
    ReturnResultUtil confirm(RepairView repair);

    /**
     * 查询维修详情
     * @return
     */
    ReturnResultUtil details(RepairView repairView);

    ReturnResultUtil saveRepairData(RepairView repairView,User user);

    ReturnResultUtil queryRemind(Map map);

    ReturnResultUtil queryInfoPage(RepairView repairView,UserView sessionUser);

    /**
     * 平台审核不通过
     * @return
     */
    ReturnResultUtil disagree(RepairView repairView);

    /**
     * 平台审核通过
     * @return
     */
    ReturnResultUtil agree(RepairView repairView);

    /**
     * 修改工程师
     * @return
     */
    ReturnResultUtil editEngineer(Appoint appoint, User user);

    /**
     * 维修不通过
     * @return
     */
//    ReturnResultUtil reject(RepairView repairView);

    /**
     * 查询所选设备是否正在维修
     * @param deviceId
     * @return
     */
    ReturnResultUtil queryDeviceIsRepair(Long deviceId);

    /**
     * 无设备添加报修
     * @param repair
     * @return
     */
    ReturnResultUtil addRepair(RepairView repair);
}
